Media consoles such as those used for playing video games have achieved significant market penetration over the last few years. Consequently, game developers are particularly concerned with producing games to bring to market in an expedient manner. However, developing games and other media console software requires considerable effort by large teams of artists and programmers. Game development teams composed of artist and programmers often work on discrete portions of a new game without explicit knowledge of concurrent efforts of other artists and programmers within their own development groups. In such a development environment, a game component developed by an artist may include several component elements that are also included in other components.
A number of components of a game or other software application may share software elements, with different components having a dependency relationship with the same element file or data. For example, the shape of a car in a game might be defined by an original “car” mesh, to which several colors, materials and textures are applied. For example, a specific red may be employed for the car body color, and “chrome,” which may comprise both a texture and a color, might be used for highlights on the car. In this example, the color/texture “chrome” will also likely be used for other cars and components of the game. Unfortunately, during game development when an artist changes a color or texture element that is shared by other components, it may not be possible to easily determine which other components are affected by the artist's changes. Furthermore, multiple dependencies may not become apparent until an application has been compiled and executed, rendering an unintended change apparent only during a quality review cycle. Moreover, it may be difficult to determine the artist that actually caused an undesirable change when modifying a mutually shared component texture or color without reviewing each component of a game that would be affected, prior to the step of compiling.
Changes are often made that result in texture files that were once used being no longer used in a game, but still included in the file set for the game. As a result, many games include surplus content and/or orphaned files, which are no longer used or needed by the game. Because it may not be clear what components would be adversely affected by deleting texture files, game developers are hesitant to delete content during development. Accordingly, there is a need within the game development industry for new approaches to be developed that facilitate managing game content and the relationships between components and files used in rendering those components. An approach is needed that is universally applicable at minimal cost, and which address these and other related problems that arise during the development of games.